{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Capital Bikeshare 数据探索分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#import nessary package\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sn\n",
    "from sklearn.metrics import r2_score\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#read data\n",
    "data = pd.read_csv('day.csv')\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "      <td>731.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>2.496580</td>\n",
       "      <td>0.500684</td>\n",
       "      <td>6.519836</td>\n",
       "      <td>0.028728</td>\n",
       "      <td>2.997264</td>\n",
       "      <td>0.683995</td>\n",
       "      <td>1.395349</td>\n",
       "      <td>0.495385</td>\n",
       "      <td>0.474354</td>\n",
       "      <td>0.627894</td>\n",
       "      <td>0.190486</td>\n",
       "      <td>848.176471</td>\n",
       "      <td>3656.172367</td>\n",
       "      <td>4504.348837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>211.165812</td>\n",
       "      <td>1.110807</td>\n",
       "      <td>0.500342</td>\n",
       "      <td>3.451913</td>\n",
       "      <td>0.167155</td>\n",
       "      <td>2.004787</td>\n",
       "      <td>0.465233</td>\n",
       "      <td>0.544894</td>\n",
       "      <td>0.183051</td>\n",
       "      <td>0.162961</td>\n",
       "      <td>0.142429</td>\n",
       "      <td>0.077498</td>\n",
       "      <td>686.622488</td>\n",
       "      <td>1560.256377</td>\n",
       "      <td>1937.211452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>22.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>183.500000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.337083</td>\n",
       "      <td>0.337842</td>\n",
       "      <td>0.520000</td>\n",
       "      <td>0.134950</td>\n",
       "      <td>315.500000</td>\n",
       "      <td>2497.000000</td>\n",
       "      <td>3152.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.498333</td>\n",
       "      <td>0.486733</td>\n",
       "      <td>0.626667</td>\n",
       "      <td>0.180975</td>\n",
       "      <td>713.000000</td>\n",
       "      <td>3662.000000</td>\n",
       "      <td>4548.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>548.500000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.655417</td>\n",
       "      <td>0.608602</td>\n",
       "      <td>0.730209</td>\n",
       "      <td>0.233214</td>\n",
       "      <td>1096.000000</td>\n",
       "      <td>4776.500000</td>\n",
       "      <td>5956.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>731.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.861667</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>3410.000000</td>\n",
       "      <td>6946.000000</td>\n",
       "      <td>8714.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season          yr        mnth     holiday     weekday  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean   366.000000    2.496580    0.500684    6.519836    0.028728    2.997264   \n",
       "std    211.165812    1.110807    0.500342    3.451913    0.167155    2.004787   \n",
       "min      1.000000    1.000000    0.000000    1.000000    0.000000    0.000000   \n",
       "25%    183.500000    2.000000    0.000000    4.000000    0.000000    1.000000   \n",
       "50%    366.000000    3.000000    1.000000    7.000000    0.000000    3.000000   \n",
       "75%    548.500000    3.000000    1.000000   10.000000    0.000000    5.000000   \n",
       "max    731.000000    4.000000    1.000000   12.000000    1.000000    6.000000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  731.000000  731.000000  731.000000  731.000000  731.000000  731.000000   \n",
       "mean     0.683995    1.395349    0.495385    0.474354    0.627894    0.190486   \n",
       "std      0.465233    0.544894    0.183051    0.162961    0.142429    0.077498   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.000000    0.022392   \n",
       "25%      0.000000    1.000000    0.337083    0.337842    0.520000    0.134950   \n",
       "50%      1.000000    1.000000    0.498333    0.486733    0.626667    0.180975   \n",
       "75%      1.000000    2.000000    0.655417    0.608602    0.730209    0.233214   \n",
       "max      1.000000    3.000000    0.861667    0.840896    0.972500    0.507463   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   731.000000   731.000000   731.000000  \n",
       "mean    848.176471  3656.172367  4504.348837  \n",
       "std     686.622488  1560.256377  1937.211452  \n",
       "min       2.000000    20.000000    22.000000  \n",
       "25%     315.500000  2497.000000  3152.000000  \n",
       "50%     713.000000  3662.000000  4548.000000  \n",
       "75%    1096.000000  4776.500000  5956.000000  \n",
       "max    3410.000000  6946.000000  8714.000000  "
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [],
   "source": [
    "categorical_feature = ['season','mnth','weathersit','weekday']\n",
    "for col in categorical_feature:\n",
    "    #print '\\n %s 属性的不同取值和出现的次数'%col\n",
    "    #print data[col].value_counts()\n",
    "    data[col]=data[col].astype('object')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xd874278>"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xe38bef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sn.violinplot(data=data[['yr','cnt']],x='yr',y='cnt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5,1,u'daily distribution of counts')]"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEWCAYAAABBvWFzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzsnXd4VFXegN8zMymQhF4EQpWOAoog\nqCgqChbErqhrQ93VddXV3XXXsrp+6tq7rg0VUAG72MCKiEjvIL2GDiFAEpJMOd8fZ4a5985tM5mE\nAPd9Hh4yt5w5087v/LqQUuLh4eHh4VFZfAd6Ah4eHh4ehwaeQPHw8PDwSAueQPHw8PDwSAueQPHw\n8PDwSAueQPHw8PDwSAueQPHw8PDwSAueQPGoNEKId4QQD7u89hshxDXRv68VQkxJ0xwmCSFuiP59\npRDi23SMGx1vsRBiQPTvB4UQ76Zx7HuEEG+ma7wknvcCIcQGIUSxEOKY6n5+j0OTwIGegMfhhZTy\nrGp4jveA95yuE0K8AxRIKe9zGK9bOuYVFUrvSinzNWM/mo6xU+Ap4FYp5ecH6PkTEEJIoIOUcuWB\nnotHangaioeHBUKIQ3nD1RpYfKAn4XFo4QkUj6QRQhwjhJgjhNgrhBgHZGvO1RdCfCmE2C6E2BX9\nO19zfr9pyjDmy0KIpw3HvhBC3GExhzOEEEuFELuFEC8BQnNuvylNKJ4VQmyLXrtACHGUEOIm4Erg\nH1GzzxfR69cKIe4WQiwASoQQgeixgZqnzxZCjIu+/jlCiB6a55ZCiPaax+8IIR4WQuQA3wDNo89X\nLIRobjShCSHOi5rYiqLvVRfNubVCiL9FX8Pu6Bz2v/eG98cnhLhPCLEu+tpHCSHqCiGyhBDFgB+Y\nL4RYZXF/NyHEd0KIQiHEViHEPdHjWUKI54QQm6L/nhNCZBnfd7P3I/pevCyE+Cr63k0XQhwZPTc5\nesv86HtzmRCiUfT7UxSdxy9CCG/NqsF4H45HUgghMoHPgNFAA+BD4CLNJT7gbdQOuBWwD3jJxdAj\ngWGxBUMI0Qg4HRhjModGwMfAfUAjYBVwosW4ZwInAx2BesBlwE4p5esos9gTUspcKeUQzT3DgHOA\nelLKkMmYQ1GvuwHwPvCZECLD7sVJKUuAs4BN0efLlVJuMryujtHXewfQGPga+CL6nse4FBgMtAW6\nA9daPOW10X+nAu2AXOAlKWW5lDI3ek0PKeWRxhuFEHnA98AEoDnQHvghevpeoC/QE+gB9EF9Dm4Z\nBvwHqA+sBB4BkFKerJlTrpRyHHAXUIB6L5oC9wBeragajCdQPJKlL5ABPCelDEopPwJmxk5KKXdK\nKT+WUpZKKfeiFoxTnAaVUs4AdqOECMDlwCQp5VaTy88GlkgpP5JSBoHngC0WQweBPKAzIKSUv0sp\nNztM5wUp5QYp5T6L87M1z/0MSkPr6zCmGy4DvpJSfhcd+ymgFnCCYW6bpJSFwBeohd2MK4FnpJSr\npZTFwL+Ay12a8c4Ftkgpn5ZSlkkp90opp2vGfUhKuU1KuR0lHP6QxGv8REo5Iyqo37OZP6jPrhnQ\nOvpd+0V6xQdrNJ5A8UiW5sBGww97XewPIURtIcRrUVPLHmAyUE8I4Xcx9kjgqujfV6G0IKs5bIg9\niM5lg9mFUsofURrSy8BWIcTrQog6DvMwHcvsvJQygtpFN3e4xw3N0byX0bE3AC0012gFZylK83Ac\nK/p3ALXTd6IlSutzO24yr93t/AGeRGkx3wohVgsh/pnE83gcADyB4pEsm4EWQgihOdZK8/ddQCfg\neCllHZS5CTQ+DhveBYZGfRJdUKY1qzm0jD2IzqWlxbVIKV+QUvYCuqFMX3+PnbK6xWGe2uf2AflA\nzHxVCtTWXHtEEuNuQpkKY2PHXtdGh/scx0J9RiHATOMzsgFIMIXZjBt77SVoXrsQQvvakyaqGd0l\npWwHDAHuFEKc7nSfx4HDEygeyfIbamG6LeqwvhBlR4+Rh/KbFAkhGgAPuB1YSlmAMp+NBj62MTl9\nBXQTQlwYNeHchn7h3o8QorcQ4vioj6MEKAPC0dNbUf6FZOmlee47gHJgWvTcPOAKIYRfCDEYvblv\nK9BQCFHXYtwPgHOEEKdH53tXdOypKcxxDPBXIURbIUQu8CgwzsInZORL4AghxB1RJ3yeEOJ4zbj3\nCSEaR31Z/0ZtBADmoz6XntFggQeTnLPu8xBCnCuEaB8VrHtQn1vY6maPA48nUDySQkpZAVyIcvju\nQtn9P9Fc8hzK7r8DtchOSPIpRgJHY23uQkq5A7gEeAzYCXQAfrW4vA7wRnSu66LXPxU9NwLoGo0i\nstKGzPgc9bp3ofwHF0Z9HgC3o3bTRSh/w/5xpZRLUQvy6uhz6kxFUsplKFPfi6j3bwgwJPqeJ8tb\nqPdwMrAGJUj/4ubGqO/rjOjzbwFWoJz7AA8Ds4AFwEJgTvQYUsrlwEMoh/4KINmk1QeBkdH35lLU\n5/o9UIzayLwipZyU5Jge1YjwfFweNQkhxMmoHW+bqA/Bw8PjIMHTUDxqDFEzz+3Am54w8fA4+PAE\nikeNIJrAV4QKE33uAE/Hw8MjBTyTl4eHh4dHWvA0FA8PDw+PtHBIFr9r1KiRbNOmzYGehoeHh8dB\nxezZs3dIKRunev8hKVDatGnDrFmzDvQ0PDw8PA4qhBDrnK+yxjN5eXh4eHikBU+geHh4eHikBU+g\neHh4eHikhUPSh+Lh4eFxoAgGgxQUFFBWVnagp2JJdnY2+fn5ZGTYtvFJGk+geHh4eKSRgoIC8vLy\naNOmDfqi3DUDKSU7d+6koKCAtm3bpnVsz+Tl4eHhkUbKyspo2LBhjRQmAEIIGjZsWCUalCdQPDw8\nPNJMTRUmMapqfp7Jy8PD48CwfjpMfxU2zYHMXOhyHvS5EWo3ONAz80gRT6B4eHhUP7PfgS/uQNfE\ncusimD8Grvsa6qSjo7JHdeOZvDw8PKqX3Rvhq7sw7Yi8aw1MvKfap3QwEQ7X3KaVnobi4eFRvSwY\nCxGbTsS/fwGlheamLylhwwwoXAU5TaDdKeBPb+jrgeb++++nUaNG3H777QDce++9NG3alE8//ZRm\nzZoxb948lixZcoBnaY4nUDw8PKqXovX25yMh2LslUaBsXQwf3wDbNItpXjMY8jx0HJT+eR4ghg8f\nzoUXXsjtt99OJBJh7NixPPHEE8yYMYNFixalPdQ3nXgCxcPDo3qpk29/Xvgh7wj9seJtMGoolGzX\nH9+7GcZeCddPhPxe6Z3nAaJNmzY0bNiQuXPnsnXrVo455hgaNmxInz59arQwAc+H4uHhUd30uFwJ\nDSs6n52oncx6K1GYxIgEYcoz6ZtfDeCGG27gnXfe4e233+b6668HICcn5wDPyhlPoBzOhEPK/FCy\n80DPxONwol5LOOtx83N1W8Ip/4Sfn4RX+8OLveCTm5RfxY5VP6V/ngeQCy64gAkTJjBz5kwGDTp4\nzHmeyetwJBKGKc/C9NegZJs61vpEGPggtOxzIGfmcbjQ50Zo3AlGDokfO/oSOOF2GHcl7FobP75z\npYsBD61W5pmZmZx66qnUq1cPv99Gm6theALlcGT8bTDvXf2xdb/CO+fC1Z9D634HZl6VIbgPFn8K\na38Fnx86nAEdzwK/9xWvsbQ9Wf+4+2Uw+XG9MHFLuwFpmFDNIRKJMG3aND788EMABgwYwIABAw7s\npFzg/doONzbNTRQmMcLl8N39cMP31TunylK4GkZfoF+I5oyE5sfCVR97mdc1hb1boaxImbUyayee\nL94GS79KflxfAE76a+XnV0NYsmQJ5557LhdccAEdOnQ40NNJCk+gHG4s/tT+fMFMKNqg7NwHA1LC\nuD+Y72o3zYHxf4HL36v2aXlo2DQPvr0P1v6iHmfmwrFXw2n3668r3gIyYj9Wdl0o2x1/XLuRChs+\nhEy1Xbt2ZfXq1Qd6GinhCZTDjfJiF9fsrfp5pIu1v6iSHVYs/UoJm/ptqmtG1UfRBhXdtPgzqCiB\n5sdA35uh2/kHemZxtiyEt8+CYGn8WEUxTHsFthg+t0AtQGDrDznhdvjxofjjW6ZB7Yaw8gdY8a3K\nYWl9AnQeAoHMdL4SDxd4AuVw44ij7c9n5h5ci+/mBQ4XSLVwmb2mTfNgxhuwdSFk1VELcc8rIaNW\nVcw0vexcBW8N0ofSbpim/m2/BwbcfeDmpuXHh/XCRMvayfrHMgxZudYbGl8Aeg7TC5SKvfDhtbBu\nSvzYzDehYXtl7nT6LoeDKtIxMycx98Ujabyw4cONoy9WOzorel1rbt+uqWTlurgmL/HYnNHw+gDl\nT9o8X2k6X90Fbw3Wm1RqKhPvsc7LmPQo7HATGVXFVJTA8onur//9C3vtuP9dKjNey8T79MIkxs6V\nMPYqZRI1IxyCn5+ApzvDi8fC053gzYGw1mQsD9d4AuVwIysPho2FWiaO6o6D4fR/V/+cKkOnc8Bv\nY9rIbapMIFp2rYUvDZVuY2yeBz88lHi8JlGyw3mhXjC2euZiR7CMpMJ5N86xPx8qV/+0LPva+vqt\nC2HNZPNzX9wOPz0CpTvixwpmwqjzre/xcMQTKIcjLfvAbXP1x855RgmaQNaBmVOq5DaGU/5hff7M\nRxKLB859z7444bwxKgy5plKyA8eFunhrtUzFltoNoG4r99dHgvbni9aZmM8c3odNcxOPbZ5vHekY\nCaoAAivNJs0UllTw+uRV3D52Lvd+upCpq3Yg0/DcEyZMoFOnTrRv357HHnssDTN1R5UKFCHEX4UQ\ni4UQi4QQY4QQ2UKItkKI6UKIFUKIcUKIzOi1WdHHK6Pn22jG+Vf0+DIhxMGTNlqTqVVP/zi/N9Tw\nLnOW9P+bivRBM//cpnD5+9D9ksTrd62xHy9YYm1OqgnUaQ5+B8Hf4MjqmYsdQkDfP6VvvLzmEEqy\nba3Z+7T4M/t7Ns9PLRcmSaau2sHJT/zEo18v5fN5m3hv+nqueGM6N787h4qQQ7SbDeFwmD//+c98\n8803LFmyhDFjxlRbdeIqEyhCiBbAbcBxUsqjAD9wOfA48KyUsgOwCxgevWU4sEtK2R54NnodQoiu\n0fu6AYOBV4SwKwTkkRoHcaaxEMr3o9VE+t0Knc8xvz63qf14vgDUqp+26aWd7Doqq9wKfxb0GFa5\n55ASti9Xi2uFhVPdDcffDL2uq9xcYmTUStQczUy3WjbOTjxW4SLS0c01lWBXSQU3jZpNcXmipjxh\n8RZe/HFFymPPmDGD9u3b065dOzIzM7n88sv5/PPPKzNd11S1ySsA1BJCBIDawGbgNOCj6PmRQCzG\ncWj0MdHzpwvV+HgoMFZKWS6lXAOsBA6doPPqYMcKmPQ4TPgXzBllHjrsFP9/MBCuiP9tt5N1Wmy7\nDjV35Nckzvw/aGoSsecLwAX/gzwHoWnHsgnw8vHwcm947WTlsP7+QRURlSw+Hwx5TplTK8svT8Gv\nz+uPHX2p/T2LP4bdBfpjzXrY35NRG+a9B8/3gCfbw3uXpr1W2MdzCkyFSYx3p61LWUvZuHEjLVvG\n88jy8/PZuHFjSmMlS5UJFCnlRuApYD1KkOwGZgNFUsrYO1kAtIj+3QLYEL03FL2+ofa4yT37EULc\nJISYJYSYtX17DTZXVCdSKnvwS8epyJ9pr6hEv+e7w/pphmsPAYGixc4HcsRRKmLIjDotYOB/qmZO\n6aR2Axj+LXS7QH/8T1PgqItSH3fZNzDmctixLH6sfI+q/fbZLan7Fhq2d3+tzybIYs5o/eNMhxBv\nGUmM3Op2ob2WKnww7X/K7FWyHVZMhNHnw7RX7Z8rCZZs2mN7fldpkK17kjTvRTHzwYhqMmdXpcmr\nPkq7aAs0B3KAs0wujb16s1csbY7rD0j5upTyOCnlcY0bN05t0ocas0bA1BcTj5fuhPcMJpNqckJW\nG0629tPuh4vfVnW/YrTsAzf+qBbrpV/B/HGwfZn1GAeazNrQpFv8cUYONOmS+nhSwnf/xtL8ufAD\n+E99+G9LtTFxapSlpbTQ3XWZORCpsLnAsPGxC67Yj2EJyawNV4yDHJN1Ireptblr4j0qmTQN5GU7\npwDmZKWWJpifn8+GDfF5FhQU0Lx585TGSpaqNHkNBNZIKbdLKYPAJ8AJQL2oCQwgH9gU/bsAaAkQ\nPV8XKNQeN7nHwwopYepL1ufLDTukSM3tU+0Ko0C0SqaLIQQcdSHUaxM/1uI4WPqlyk0YewV8ehO8\n3EfVCSuOar27C1T+wmd/Vkl7O1el9WUkzb5d8b8zsis31o7l6p8tUn135oyCN05TgnfU+co09HRn\nVWp+8/zE2xZ+lHjMjLwkF75Gnex7qyBAhhLDjZsfkxjpeNz1qp6YFTIM89MTjn1uD/vXeVL7RjTI\nSS3Tv3fv3qxYsYI1a9ZQUVHB2LFjOe+881IaK1mqUqCsB/oKIWpHfSGnA0uAn4CLo9dcA8S8ReOj\nj4me/1Eq3W08cHk0Cqwt0AGYUYXzPjTYt8s5mknLwW7yMiYjBl2aC7SFI9dEkxuNwnbVj/DeRfDt\n/fDsUSp/Yd67MPlJ1a9jyrOVm3tlKCuK/51RyYRUJyFspGS7Eryrf1J/790MC8bB66fCok/i10kJ\nSxwiq2LsTNIZnZULva6xuUAqU90zXfVzgkQ/2fyxOAan7E3PXva41vU5z0Ko1Mrw88+zOqc8diAQ\n4KWXXmLQoEF06dKFSy+9lG7dujnfmAaqrPSKlHK6EOIjYA4QAuYCrwNfAWOFEA9Hj42I3jICGC2E\nWInSTC6PjrNYCPEBShiFgD9LKQ/y7XQ1kGw+ycEqUKSE6a8qrUHLloXqnJ3teO9WfXjo1oXW126e\nb77zRiqHdZNu0PHMJCaeJvZonK2VzSFq1FGZnCpKKjeODMPnt8CRp6pouW1L4n130k2wDAY/rpzm\ndhuo0h3w8XC1gWg3IH5c+NV8wZ1ArZueoqlCCJ65tAftm+Qy6re17ChWZr7+HRpx9+DOHNWibqXG\nP/vsszn77LPTMNPkqNJaXlLKB4AHDIdXYxKlJaUsA0xjIaWUjwCPpH2ChzKZOXDk6bDqB3fXH6wC\nZcoz5pnt2xbDT4/Cafea31dRCqPOS1++ybRXqlegbJgJE/+lsrtjFG9VpUsyclSm/MwRqgRJTiPo\nfrnKCbGLXpsz2r1m50RwnzJz9blR+eyqiqVfKO1nX5HztTKiOkG2GxA/5gtA2OX+1JdR+XBsDQG/\nj9tO78AtA45k295ycjID1K2d4XxjDcYrDnkoc9p9qnGWmYO6VT9Y/1v88cEoUMp2w+Snrc//+jwc\n/yfIMaldtvAD2L40fXPZPC99YwHs3aI0hbr5iZrHpnkw8tzEz7V8L7x7CTQ8Up8JXlYEPz0Mv4+H\nc5+BWW8rM56MqCZXJ9ymNLUJaS4ouTvqGBZVuMwk2z9l3RR4ppvSRuq1SuJ7L1T4c51mzpcmScDv\no3m9g6AgqQs8gXIo0+JYuHq88gtozTnHXg2DHoX/5sePpUOglBaqekz+AOT3qfoik6snqax2K8Ll\nsPJ76HFZ4rllE9I7l8xcJQA2L1CRY816pGaC2jBDRVrFhH12Peg9XPVZj5Vj/+kR6yi2Db+pf2Zs\nWaCKX2ojoxZ+CEs+h3qtk5+rE8IPb54BBTXM5bknmpeyz2XkmfDD8O8gv1fVzekQwRMohzqtjocr\nP4BnNOGk572oqq1qqYxACVWoTo+z3laLOKhGSP3/Bif8Jb0lXYo2wPwxqq6TGzNHyCIfxaluVLLk\nNVMJgLFqub4MFXVVJx+Ovgj6/FFluO+fVwUg9UJn+bcqB0TrIiwrgl+eVsmpl45SpqQV36U+T7Mw\n23BF8s5wJ3wB9X0o2+V8rVMPlANNTiO1OfNwxBMohwNmIcFhQxhlZQTKl3eozGItZbuVkAE48bbU\nx9Yy6234+m8ucw+i5FsUVWjZV2kv6cCXkbgLjwShPAjbf1fhxYs+gWu/UlrC5Kfi3Qtbn6iSLJse\nBR9cpRcmWn4fr7SWzBxq9OIbo/WJsObnAz2L9FC8Fb5/AM6o4VWoawCeQDkcMFuAjXH5qQqUHSsT\nhYmWX56C3jdU3vy1YSZ8+VeSWkzbD4SmXROPB8tUcUx/pr5cSyoEaiUKZzO2LVFRRqsn6d/rdb/C\nuqkqqdL4mRiZ+57qTFjTaXcabE+iGKHwWQvSmsKvz6uqBM2POdAzqdF4AuVwwExYpEugrHQwv5Tt\nhm/uVvkCDY+Eoy5OrHTshun/I+md+fkmpTIKV8PoC5PL0bGj61D3vUdW/WhxQsKG6c73b5wNxZvt\nrwlkJ1+RN92stnqdFtR0YRJj7nvpFyglO9WGbMsCFYHX7QJo07/SZuLrr7+eL7/8kiZNmrBokU2L\n7DTj9UM5HKhKk5ebgoFzR6mw2q/ugme7qnpRyWKaA+KAsRdGJAJjrkifMAFYMyl9YznhJpfj4reV\n78oMXxUU6Tb2mqkpOJX3T4XiLekdb81keKGHMg0v/BBmvQUjh8AHf4j62FLn2muvZcKENAeeuMAT\nKIcDZjtA4xc2VYFi7IboREUJfHBN8i1qM3OSux4SQ3nXTFI+jXSyN82LjBX+LHcC4YijVRXiDJP3\nqyrK66RSgbg6cGOGTBan/vTJUFqoqgyYtTz+/QuY/ETi8SQ4+eSTadDAobR/FeAJlMOBqtRQWvRS\nKnoyhMth5pvJ3dP1fOdrjBhLkWxKc65IjFZ9q2ZcLee9oGqNOTHlGfjoGvtw6urEZ6HBZNbw9gBm\nHHN1+saa9765MIkxc0SltZQDgSdQDgeqUkMRQoWztj4pufu0Gd5u6D0cGnZI7p6VP8BWjXPYTY+T\nQJIJZtn14NJ3VdRYVdGwA/S4HPre4nztrLeqbh5Gsl2UB2lm0rPl8jHQabDzvb4a5OJt2Rcad0zf\neFtsyvyAypFJU92w6sQTKIcDbjSUyphDajdIPk4/I9mFuy5c97UqJ+OW1T/CiIFQEO3a1/kch8q0\nWOSt2DhIWx6v+tpfPwE6uuhOnUoBx9g9bfvDOc9Y7/qrm2OvNTetadk4J/FYVi50MutkoaFWfbju\nG+g4WEWBHWjOsanIkAranCQrDkItrgZ8Uh5Vjqsor0rkNuxcBVNfSO6eLkOSf57NC/Tl2gFO/rv9\nPRUl8E30mjrN4cTbk3/eRh2td8tHRHfgQjj3cc/Kg2u/1pfMb9ZTlWC3o66mn1zv4XCHw+62uti6\nMPkKxaDeyy7n2UdMNWyvQqmvGAf/LoTL3lNacKAWZOQ6P0dlKy9radRJNWVLJ90utD/fboB5yaAa\njidQDgfMtI90hQ1DYllwJxp1gp5XJnfPdw+oEvKbDDvepV8737txdjwI4PR/q+q0ySAj+v707QfG\n/14+AbYsil9nRaNOSpi0OEa/UDTtpgoo2tHgSBWhFqMK6kmlxKofSSnJ0pehosOu+iTacdJEA8xp\nEv9bCOhyLlz3Fdy3Be7RtPQNWPSA6XBG8vMyEtNmc5vYX5cKrfqqEHozMmpVumvosGHD6NevH8uW\nLSM/P58RI0Y435QGPIFyOGDmQ0lnpnyZixIoMboMhWu/VGYPt6z9FX59zvzctsXuxijdof4XQlXd\nTYbibXqzizbDfusiePVEmPKcfZLkCbdCs+7qb+11voBq7GQXdPDbi6q3e6xboNtmVW7xZ8KJd6R3\nTDti8qN2A7jkHeWDM+KzWZqEUHMGvWad3zv+txt/mSPRsauicKoQcMFrcOq9+s6RR54G102A5j0r\nNfyYMWPYvHkzwWCQgoIChg8fXskJu6MGeb08qgyjhhIJq2ZIWpL50UipkucC2eqH0cQkG92K819x\nFiZSqozy5ROUJuVWaFgh/FC/ber3B0ucw2O/f0CVG7Fi6dfKzFervr6OWiSswoEvfhvmngpfWJjk\nti6E9y+Dwf+FTxw0mmTpdLYKLsionZoJK1mMWoVZ22I7X9e63+LfV+3GqFHHeLBH0KKGWzLEnqOq\nupn6A3DKP+CkO1WOS2aO+n4cxHgC5XDAqKF8chMs+lh/bPk30PMK+wzd8mJVSmXOaLXjr9UAjrkK\n+t0KtRvFtQA7ynbbC5TyYhh3pRIo6aLLEMhrqv5ePz2xGZcTMuxuUVn3q/W55d+oroHnPqcvTBkL\nAvD5lD/Fjm2L4dv70r9jXvK5+46K6UAbVFC0Hsab1Hoz60Evo83MrLRVrZ+rIo2C0W3tuI2zYeqL\n0PIq2BJWjvecJs6tmf0B1abgEMAzeR0OGBfDRR+RYPv+/Qv4zaIHfahCOcTfHqza3cYEx75C5Yx/\n/1K4eIR5NI4x1NfYqtfIhLtTFyZ+kx7cjTurHWBFKfz+Jbx9FqxKsihkTCOrLMFS+OxPSmjuP6bZ\nSW9zkXS5ZUHl55FANRebjGXXl+2Gd86F9VMTr1k3JbE6wvIJ1sIE9N0r05GHs9+s5mIzsWQ8jDgT\nFn8KMoQMV6jGYjuWVb4DZhUgKxOEY4MnUA4H3Krsvzyj79gXiajKuM92hdf6W8fOb56nfvy1DVEp\nx14D/f6sP2YnUEp2wvxx7uZqxpkP67vxNe6sane9frLq/fLRdanXjXIShG6REX2kmlagVLZQ5cFC\nTJOY+65qQ2CGjH73tDglw27R1KzSaiipmDt9gbgfxun3U1EK42/dr8lk717NzpKQWrRlRGlhVbSA\np4KUkp07d5Kd7aA5pYBn8joccLuI7itU9a9a91OPv/m7+4z2BR8kRo7tK0pMYLRbmLctSb5PSa36\n8QU6t6nyB8Q0HG1HRhl23+rVjHQJFNDb/bWaT27T9D1HTSYmUJZPtL9u+US1EMfMsDuW21+vrbWl\nFdS9h8PO1TA7iaTPBu3imoWTiXHZ17rvR/6cxyngbrbXbcf+CIStFfEGaTWA7Oxs8vPTb2bzBMrh\nQDJOxdiPZ/vy5MqjlO5MdOj+/nnidXYLcyr1ulr1Uz9oUKaUtBVA9Kk6ZeumqIf7d9JpbgalNX8d\n6CrB1UXM5OX0vTT6Lmo1ULt9N2i/i4FsaJCklrJjOdSJ5v84zXOPPqM9o6KIttP+pb/msvdU6PMh\njmfyOhxwq6Fk5anWtaAaOiVDw/bunJeTH1f2ZjMTQLMeybei1S7CvkDlynU0bK8c4yfcrnIktNpV\nMk29kmHbEuWfguqJsKoM2XXqUDGtAAAgAElEQVRVmGtliX1GToVFW5+gDxLpbtLK2Qrte7l7A0w3\naWXgRMwn6PT7qe/iO+vmGjOkVP1yJj2mgkkKZtco85kRT6AcDrjVUPreEo/AStaR6DZRcecqVZ77\n+wcSz/n8MOgRLEud1G2ZeEy7w6+MQAnUgltnwR9/htPuh4+utahYK1PrFW+FDMP7l8DX/4Bfk6w2\nUN3UbwMdzrQ419Z9pFJMQznuesiyKUFykiE35rjr3Jdh0fpQpr6kd9i7oVHHuFPe6ffTcbA+EdNI\n82PjFRWSobRQBS28fRZM+i/89Ai8eRq8d4l9YckDiCdQDgeMNmCztritT4RT7o4/Tiaxqt+t0Pbk\n5Ob06/NQMCvxeJchMGysyQ9UqJ2mkfI98b/9Gc61uqxo1CG+G/78ZvtkTafOismydwvMeE1fWj+v\nubt7Uy0xkmwtNVC+qtKdicfb9Ie/zFYmKXBuDhUT+nWaKU3Q7LW2PUVfkSA253anupurVkNJJRDj\npDvj83S6P5Cl8knMvns5jVXuVSp8cmPc5Kpl5XfW+UoHGE+gHA4Yd1hnP6F6ZmjpdJbe/9DpbHf9\nH66boLSKVOz/c981P95pMBxlrHVkoeZr7deV0VAyo5rZviJY7CInoyrKcWjZu8ndbjzV1+umcrGR\novVKuzRSr5X67sQSFrPq2O/YtXkoLXvDHQsSNzlNu5nf2/8uLDVY7bipRvP5M2Hgg9BzWPz34KSh\nrPgOJvzL/DkHPmieuOnE1sX6igxGFn3i3p9UjXgC5XDA+EUPBxOjqYw/Gn8GXPGBuZlJN3ZU+0nF\n/r/HpDx3aaFKnFw/zd0YWtXfVwmnfOy+9b+5izSr08LkmJlWUYlWrm6EhVZDs8OYge3oE7KYt5kp\nNGbCiiXwhcrtPwfjOX8G1DN8z6yEaZsT4cLXzQM4+t5s/ZxOND0ahjwPd/4OJ/01OgcXAiUcUomZ\nVt+Z7x9MTaN1bAktYcOM5MetYjyBcjhg/EGEg2onrsUsNLJxJxjwT/uxR52vdkvf3pf8vOq10j/+\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xe38bf60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import datetime\n",
    "data['date']=pd.to_datetime(data['dteday'])#转化为日期\n",
    "data['dayofyear']=data['date'].dt.dayofyear\n",
    "fig,ax = plt.subplots()\n",
    "sn.pointplot(data=data[['dayofyear','cnt','yr']],x='dayofyear',y='cnt',hue='yr',ax=ax)\n",
    "ax.set(title='daily distribution of counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5,1,u'seasonly distribution of counts')]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nJPVicEiSevn/HC5LAVwHPjMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1137acf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "sn.barplot(data=data[['season','cnt',]],x='season',y='cnt')\n",
    "ax.set(title='seasonly distribution of counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5,1,u'monthly distribution of counts')]"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEWCAYAAABxMXBSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAHgtJREFUeJzt3Xu4FfV97/H3R/GCoIKCoIBiKjVq\nnnjpDqKeY40YxCuaRyvWKLGktIlN9Bwr1dhTo9bneEliNG08hwoJGqNSGiNVo1LUk2qKCl5QRAPB\nCxvYsJWLIIqi3/PH/DZZbPZlDXvNWntvPq/nWc/M/OY38/3NrL3Xd81vLksRgZmZWbl2qHUDzMys\na3HiMDOzXJw4zMwsFycOMzPLxYnDzMxyceIwM7NcnDisU5D0PUk/b2P+W5JOqkCcEyTVl0zPl3RC\nR9eb1nWBpMdLpkPSQZVYd1rfekmfq9T6yozZU9K/S1or6V+rGds6LycOq7rmH961FBGHRcRTbdWR\nNDQlgR7trOueiBhViXZJekrSN5qtv3dELK7E+nM4BxgA7B0R51Y5dova+5JhxXPiMKuA9pJKF3YA\n8LuI2FTrhljn4cRhm6XuoCskzZP0gaTJkgZI+rWkdZL+Q1Lfkvpnpq6eNekb8iHN1vW3aV1rJd0v\naVdJvYBfA/ulrpf1kvZLi+0s6a4Ua76kuhbaOFDSBkl7l5T9iaRGSTu1UL+npJ9JWi3pNeBLLWzz\nSWl8uKQ5kt6XtELSD1O136ThmtTeYyR9XdIzkm6VtAr4Xip7ulkTTpW0WNK7km6RtEOKtcW35tKj\nGkk3AP8d+KcU759Snc1dX5L2TPuqUdLbkv6+ZN1fl/S0pO+n7X5T0iltvO+HpPdvTdrvZ6bya4F/\nAM5L7RjfwrI7SvqupN+n922upCFp3rGSnk/v//OSjm1pvzffHyX7Ypykd9K+uzrNGw18t6RNL5ds\n8+LUhjclXdDa9loFRIRffhERAG8Bs8m6JgYBK4EXgCOBXYAngGtS3T8GPgC+AuwETAQWATuXrOs5\nYD9gL2AB8Ndp3glAfbPY3wM+Ak4FdgT+NzC7WdtOSuOPAN8smXcr8ONWtulG4D9TG4YAr5bGbrbe\n/wIuTOO9gRFpfCgQQI+S5b4ObAK+DfQAeqayp0vqBPBkir0/8DvgGyXb+/OSulvEAJ5qqttsfQel\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xd86deb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "sn.barplot(data=data[['mnth','cnt']],x='mnth',y='cnt')\n",
    "ax.set(title='monthly distribution of counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0.5,1,u'weathersit distribution of counts')]"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x133acc50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,ax = plt.subplots()\n",
    "sn.barplot(data=data[['weathersit','cnt']],x='weathersit',y='cnt')\n",
    "ax.set(title='weathersit distribution of counts')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x14475a90>"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x132d4630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,(ax1,ax2)=plt.subplots(ncols=2)\n",
    "sn.barplot(data=data,x='holiday',y='cnt',hue='season',ax=ax1)\n",
    "sn.barplot(data=data,x='workingday',y='cnt',hue='season',ax=ax2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x14794550>"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xf3487b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "corrmatt = data[['temp','atemp','hum','windspeed','casual','registered','cnt']].corr()\n",
    "mask=np.array(corrmatt)\n",
    "mask[np.tril_indices_from(mask)]=False\n",
    "sn.heatmap(corrmatt,mask=mask,vmax=.8,square=True,annot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index([u'instant', u'dteday', u'season', u'yr', u'mnth', u'holiday',\n",
      "       u'weekday', u'workingday', u'weathersit', u'temp', u'atemp', u'hum',\n",
      "       u'windspeed', u'casual', u'registered', u'cnt', u'date', u'dayofyear'],\n",
      "      dtype='object')\n",
      "Index([u'season', u'yr', u'mnth', u'holiday', u'weekday', u'workingday',\n",
      "       u'weathersit', u'temp', u'atemp', u'hum', u'windspeed', u'casual',\n",
      "       u'registered', u'dayofyear'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "#data preparing\n",
    "data['date']=pd.to_datetime(data['dteday'])#转化为日期\n",
    "data['dayofyear']=data['date'].dt.dayofyear\n",
    "y=data['cnt'].values\n",
    "print(data.columns)\n",
    "X =data.drop(['cnt','date','dteday','instant'],axis=1)\n",
    "#X =data.drop('date',axis=1)\n",
    "#X =data.drop('dteday',axis=1)\n",
    "print(X.columns)\n",
    "columns = X.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "#random choice 20% as test sample others train sample\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=33,test_size=0.2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {},
   "outputs": [],
   "source": [
    "#data.isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "#data normalization\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "ss_X=StandardScaler()\n",
    "ss_y=StandardScaler()\n",
    "\n",
    "X_train = ss_X.fit_transform(X_train)\n",
    "X_test = ss_X.transform(X_test)\n",
    "\n",
    "y_train=ss_y.fit_transform(y_train.reshape(-1,1))\n",
    "y_test = ss_y.transform(y_test.reshape(-1,1))\n",
    "\n",
    "#y_train=ss_y.fit_transform(y_train)\n",
    "#y_test = ss_y.transform(y_test)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>[0.808424582332]</td>\n",
       "      <td>registered</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>[0.351203426274]</td>\n",
       "      <td>casual</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[1.22124532709e-15]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[6.10622663544e-16]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[5.5036027462e-16]</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>[5.15212872365e-16]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>yr</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[1.11022302463e-16]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>[-3.46944695195e-17]</td>\n",
       "      <td>dayofyear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-8.32667268469e-17]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>[-1.11022302463e-16]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[-1.66533453694e-16]</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-1.49533163629e-15]</td>\n",
       "      <td>temp</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    coef     columns\n",
       "12      [0.808424582332]  registered\n",
       "11      [0.351203426274]      casual\n",
       "8    [1.22124532709e-15]       atemp\n",
       "5    [6.10622663544e-16]  workingday\n",
       "0     [5.5036027462e-16]      season\n",
       "10   [5.15212872365e-16]   windspeed\n",
       "1    [2.22044604925e-16]          yr\n",
       "3    [2.22044604925e-16]     holiday\n",
       "4    [1.11022302463e-16]     weekday\n",
       "13  [-3.46944695195e-17]   dayofyear\n",
       "6   [-8.32667268469e-17]  weathersit\n",
       "9   [-1.11022302463e-16]         hum\n",
       "2   [-1.66533453694e-16]        mnth\n",
       "7   [-1.49533163629e-15]        temp"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 最小二乘\n",
    "#LinearRegression\n",
    "from sklearn.linear_model import LinearRegression\n",
    "\n",
    "lr = LinearRegression()\n",
    "\n",
    "lr.fit(X_train,y_train)\n",
    "\n",
    "y_test_pred_lr = lr.predict(X_test)\n",
    "y_train_pred_lr = lr.predict(X_train)\n",
    "\n",
    "fs = pd.DataFrame({'columns':list(columns),'coef':list((lr.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 上面的绝对值可以看到 year holiday 几个特征在，该线性模型下相关性较低,和registered casual 线性相关"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评价线性模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LinearRegression on test is 1.0\n",
      "The r2 score of LinearRegression on train is 1.0\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#test set\n",
    "print 'The r2 score of LinearRegression on test is', r2_score(y_test, y_test_pred_lr)\n",
    "#train set\n",
    "print 'The r2 score of LinearRegression on train is', r2_score(y_train, y_train_pred_lr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## r2 score 值为 0 说明 线性模型下 拟合程度较好？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x16a61ef0>"
      ]
     },
     "execution_count": 161,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\noTylJEkqSETUfadsh5MkSVKRDDGSJKlIhhhJklQk7xMjSRpW3njjDbq6uli5cmWrS9FGjBkzhokT\nJzJ69MAf4G6IkSQNK11dXWy99da0tbUR0YiHrqvRMpNly5bR1dXFpEmTBnwch5MkScPKypUr2X77\n7Q0wm7CIYPvttx90b5khRpI07BhgNn2N+B4ZYiRJUpGcEyNJGtbaZ7c39HidHc29aevll1/OVltt\nxWmnnbbO+kWLFjF9+nQeeOCBAR338MMPZ9asWbS3t/e6/rjjjuPqq69m3LhxA65/KBliJElqkswk\nM9lss/oHPj760Y82saKN++lPf9rU469atYpRoxoXPRxOkiSpgRYtWsSee+7JOeecwwEHHMBTTz3F\nrbfeyiGHHMIBBxzAjBkzWLFiBQAXXnghe+21F/vttx/nn38+ADNnzmTWrFkAzJs3j8mTJ3PIIYfw\n7W9/e+05rrzySs4777y1y9OnT+fOO+8E4Oyzz6a9vZ29996biy++uF+1t7W18dxzz61tw4c//GH2\n3ntvjjnmGF599VUAHn/8cY499lgOPPBADjvsMB5++GEAfvzjH3PwwQez//77c9RRR7FkyZK17eno\n6OCYY47ZoHdpsAwxkiQ12COPPMJpp53G/fffz9ixY7nkkkv42c9+xn333Ud7eztf//rXef7557nx\nxht58MEHWbBgAX/3d3+3wXE++MEPctlll3HXXXfVfe4vfvGLdHZ2smDBAn7xi1+wYMGCAbXh0Ucf\n5dxzz+XBBx9k3Lhx3HDDDQB0dHTwzW9+k3nz5jFr1izOOeccAA499FDuvvtu7r//fk4++WS++tWv\nrj3WvHnzuOmmm7j66qsHVEtvHE6SJKnBdtttN6ZOnQrA3XffzUMPPcS0adMAeP311znkkEPYZptt\nGDNmDB/60Ic4/vjjmT59+jrHePHFF1m+fDnvec97ADj11FO5+eab+zz3ddddx+zZs1m1ahWLFy/m\noYceYr/99ut3GyZNmsSUKVMAOPDAA1m0aBErVqzgN7/5DTNmzFi732uvvQbU7s/zgQ98gMWLF/P6\n66+vc/+XE044gS233LLfNfTFECNJUoONHTt27evM5Oijj+aaa67ZYL977rmH22+/nblz5/Ktb32L\nO+64Y5339XYZ8qhRo1i9evXa5TX3W3nyySeZNWsW9957L9tttx1nnHHGgO/FssUWW6x9vfnmm/Pq\n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\nWoowjQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x167352e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#在训练集 上观察残差分布，看是否符合高斯分布\n",
    "f,ax = plt.subplots(figsize=(8,5))\n",
    "f.tight_layout()\n",
    "ax.hist(y_train-y_train_pred_lr,bins=30,label='residual linear',color='g',alpha=.8)\n",
    "ax.set_title('histogram of residuals')\n",
    "ax.legend(loc='best')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "##残差分布和高斯分布比较匹配"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nSnafCXIVuAQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1658d588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#预测值和真实值的散点图\n",
    "plt.figure(figsize=(4,3))\n",
    "plt.scatter(y_train,y_train_pred_lr)\n",
    "plt.plot([-3,3],[-3,3],'--k')\n",
    "plt.axis('tight')\n",
    "plt.xlabel('true cont')\n",
    "plt.ylabel('predicted cont')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([  1.34006288e-04,   2.86352344e-04,   3.08953274e-03,\n",
       "        -7.83122691e-06,   2.72487935e-05,   1.42516656e-04,\n",
       "        -1.23009765e-04,   2.45902659e-05,   1.56293412e-04,\n",
       "         1.60364765e-05,  -1.82119556e-05,   3.51192934e-01,\n",
       "         8.07946068e-01,  -3.10359643e-03])"
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#随机梯度下降\n",
    "from sklearn.linear_model import SGDRegressor\n",
    "sgdr = SGDRegressor(max_iter=1000)\n",
    "sgdr.fit(X_train,y_train)\n",
    "sgdr_y_predict =sgdr.predict(X_test)\n",
    "sgdr.coef_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "value of sgdregressor on test is  0.999999895702\n",
      "value of sgdregressor on train is  0.999999900928\n"
     ]
    }
   ],
   "source": [
    "print 'value of sgdregressor on test is ',sgdr.score(X_test,y_test)\n",
    "print 'value of sgdregressor on train is ',sgdr.score(X_train,y_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 这个结果和 线性回归的结果一样很奇怪"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 正则化的线性回归 L2正则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "r2 score of ridgecv on test is 0.999999999052\n",
      "r2 score of ridgecv on train is 0.999999998965\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import RidgeCV\n",
    "alphas = [0.01,0.1,1,10,100]\n",
    "ridge = RidgeCV(alphas = alphas,store_cv_values=True)\n",
    "ridge.fit(X_train,y_train)\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "print 'r2 score of ridgecv on test is',r2_score(y_test,y_test_pred_ridge)\n",
    "print 'r2 score of ridgecv on train is',r2_score(y_train,y_train_pred_ridge)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nZtaU/w/X4rzqK1BB6QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1704beb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is : 0.01\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>[0.808424582332]</td>\n",
       "      <td>[0.808349971148]</td>\n",
       "      <td>registered</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>[0.351203426274]</td>\n",
       "      <td>[0.351203042109]</td>\n",
       "      <td>casual</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[1.22124532709e-15]</td>\n",
       "      <td>[1.90254315172e-05]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[6.10622663544e-16]</td>\n",
       "      <td>[2.18338529421e-05]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[5.5036027462e-16]</td>\n",
       "      <td>[2.4665214664e-05]</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>[5.15212872365e-16]</td>\n",
       "      <td>[-5.71004178247e-06]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>[4.23834331265e-05]</td>\n",
       "      <td>yr</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>[-6.48235169026e-07]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[1.11022302463e-16]</td>\n",
       "      <td>[4.57611092228e-06]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>[-3.46944695195e-17]</td>\n",
       "      <td>[-3.54211582096e-05]</td>\n",
       "      <td>dayofyear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-8.32667268469e-17]</td>\n",
       "      <td>[-1.45844352751e-05]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>[-1.11022302463e-16]</td>\n",
       "      <td>[-2.97592035415e-06]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[-1.66533453694e-16]</td>\n",
       "      <td>[3.01325161747e-05]</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-1.49533163629e-15]</td>\n",
       "      <td>[8.4537242491e-06]</td>\n",
       "      <td>temp</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 coef_lr            coef_ridge     columns\n",
       "12      [0.808424582332]      [0.808349971148]  registered\n",
       "11      [0.351203426274]      [0.351203042109]      casual\n",
       "8    [1.22124532709e-15]   [1.90254315172e-05]       atemp\n",
       "5    [6.10622663544e-16]   [2.18338529421e-05]  workingday\n",
       "0     [5.5036027462e-16]    [2.4665214664e-05]      season\n",
       "10   [5.15212872365e-16]  [-5.71004178247e-06]   windspeed\n",
       "1    [2.22044604925e-16]   [4.23834331265e-05]          yr\n",
       "3    [2.22044604925e-16]  [-6.48235169026e-07]     holiday\n",
       "4    [1.11022302463e-16]   [4.57611092228e-06]     weekday\n",
       "13  [-3.46944695195e-17]  [-3.54211582096e-05]   dayofyear\n",
       "6   [-8.32667268469e-17]  [-1.45844352751e-05]  weathersit\n",
       "9   [-1.11022302463e-16]  [-2.97592035415e-06]         hum\n",
       "2   [-1.66533453694e-16]   [3.01325161747e-05]        mnth\n",
       "7   [-1.49533163629e-15]    [8.4537242491e-06]        temp"
      ]
     },
     "execution_count": 171,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_,axis=0)\n",
    "plt.plot(np.log10(alphas),mse_mean.reshape(len(alphas),1))\n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print 'alpha is :',ridge.alpha_\n",
    "\n",
    "fs = pd.DataFrame({'columns':list(columns),'coef_lr':list((lr.coef_.T)),\"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "### 这里随机梯度下降的 相关性较高的点基本和线性回归中相关性高的几个特质一致"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### L1 正则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "r2 lassocv on test is  0.999998657306\n",
      "r2 lassocv on test is  0.999998705746\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Anaconda2\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:1094: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "lasso = LassoCV()\n",
    "lasso.fit(X_train,y_train)\n",
    "\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "print 'r2 lassocv on test is ',r2_score(y_test,y_test_pred_lasso)\n",
    "print 'r2 lassocv on test is ',r2_score(y_train,y_train_pred_lasso)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nsSIyttQeaOe+F3Zw1ZnlnDJ7ctTlxEaYofAaUGFmi8ysCLgGWJ3awMzOBH5IMhAaQqxFRGSAu3Pn\n6s3k5xlfu2xp1OXESmih4O69wC3AWuAt4GF332xmd5nZFUGz7wITgV+Y2RtmtnqY1YmIjJq1m/fx\nzNsN/MWlS5gzZVzU5cRKqOPCuvsaYM2gZXekTF8a5vuLiAzW2tXLN1dv4ZTZk7lhxcKoy4kdXdEs\nImPK957aRn1LJ3971TIK8vUncDD9i4jImPFm7SF+/MJ2PnfufM6aP7buvZwuhYKIjAltXb189aHX\nmTW5RKegHsHYu9eciIxJf/PEZnYdaOdnXzyP0nGFUZcTW9pTEJGct2bjXh6uquPPLzqJD+vK5SNS\nKIhITtt9qINvPLaR5XNL+eqlFVGXE3sKBRHJWR3dfdz8QBWJhPN/rjmTQp1tNCL1KYhITnJ3vvbI\nm2zZe5gfXX8Oi6ZPiLqkrKDYFJGcdPez1fxqw16+vvJkLj55RtTlZA2FgojknF9t2Mvf/2Ybn/jQ\nHP70DxZHXU5WUSiISE55dmsDt/78dSoXTOXvPnWGbpxzlBQKIpIzXqnZz5d+so4lMyfxoxvOoaQw\nP+qSso5CQURywuu7DnLT/VXMnTqOB248l8klukDtWCgURCTr/cc7TVx37yucMKGIB7/wYaZNLI66\npKylUBCRrLZm415uvO815p8wnke+dD6zS3V/hOOh6xREJCu5O/e/uIO7ntzCmfOn8qPrz6F0vA4Z\nHS+Fgohknc6ePu745SYerqrj0lNm8E/XnsW4InUqjwaFgohklb3NHfzZg+t5o/YQX7mkglsvqSAv\nT6edjhaFgohkjV9t2Mt/e3wjvX0JfvD5s1m5bFbUJeUchYKIxN7hzh6++cvNPPb6bpbPm8L3Pruc\nxWUToy4rJykURCS23J0nNuzlfzy5hf1t3dx6aQVfvvgkjXYaIoWCiMRSdUMLd67ezAvV+zm9vJR7\nr6/kjLlToi4r5ykURCRW9hzq4B9++w6/WFfLhOICvvWJZXzu3PnkqzM5IxQKIhILdQfbuff57fz0\n1V3g8CcXLOLLF5+oq5MzTKEgIpHatLuZe5+v4YkNezHgqjPLufVjSyifoiuTo6BQEJGMa+/u5Yk3\n9/DTV2t5s/YQE4ryueGChdz4kUXMURhESqEgIhnR05fg+XcaWf3GHp7aUk9bdx8VMyZy58dP5ZNn\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x17398da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.000946412622856\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lasso</th>\n",
       "      <th>coef_lr</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>0.807748</td>\n",
       "      <td>[0.808424582332]</td>\n",
       "      <td>[0.808349971148]</td>\n",
       "      <td>registered</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.350517</td>\n",
       "      <td>[0.351203426274]</td>\n",
       "      <td>[0.351203042109]</td>\n",
       "      <td>casual</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[1.22124532709e-15]</td>\n",
       "      <td>[1.90254315172e-05]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[6.10622663544e-16]</td>\n",
       "      <td>[2.18338529421e-05]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[5.5036027462e-16]</td>\n",
       "      <td>[2.4665214664e-05]</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[5.15212872365e-16]</td>\n",
       "      <td>[-5.71004178247e-06]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>[4.23834331265e-05]</td>\n",
       "      <td>yr</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[2.22044604925e-16]</td>\n",
       "      <td>[-6.48235169026e-07]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[1.11022302463e-16]</td>\n",
       "      <td>[4.57611092228e-06]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-3.46944695195e-17]</td>\n",
       "      <td>[-3.54211582096e-05]</td>\n",
       "      <td>dayofyear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[-8.32667268469e-17]</td>\n",
       "      <td>[-1.45844352751e-05]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>-0.000000</td>\n",
       "      <td>[-1.11022302463e-16]</td>\n",
       "      <td>[-2.97592035415e-06]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-1.66533453694e-16]</td>\n",
       "      <td>[3.01325161747e-05]</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>[-1.49533163629e-15]</td>\n",
       "      <td>[8.4537242491e-06]</td>\n",
       "      <td>temp</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    coef_lasso               coef_lr            coef_ridge     columns\n",
       "12    0.807748      [0.808424582332]      [0.808349971148]  registered\n",
       "11    0.350517      [0.351203426274]      [0.351203042109]      casual\n",
       "8     0.000000   [1.22124532709e-15]   [1.90254315172e-05]       atemp\n",
       "5    -0.000000   [6.10622663544e-16]   [2.18338529421e-05]  workingday\n",
       "0     0.000000    [5.5036027462e-16]    [2.4665214664e-05]      season\n",
       "10   -0.000000   [5.15212872365e-16]  [-5.71004178247e-06]   windspeed\n",
       "1     0.000000   [2.22044604925e-16]   [4.23834331265e-05]          yr\n",
       "3    -0.000000   [2.22044604925e-16]  [-6.48235169026e-07]     holiday\n",
       "4     0.000000   [1.11022302463e-16]   [4.57611092228e-06]     weekday\n",
       "13    0.000000  [-3.46944695195e-17]  [-3.54211582096e-05]   dayofyear\n",
       "6    -0.000000  [-8.32667268469e-17]  [-1.45844352751e-05]  weathersit\n",
       "9    -0.000000  [-1.11022302463e-16]  [-2.97592035415e-06]         hum\n",
       "2     0.000000  [-1.66533453694e-16]   [3.01325161747e-05]        mnth\n",
       "7     0.000000  [-1.49533163629e-15]    [8.4537242491e-06]        temp"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print 'alpha is:', lasso.alpha_\n",
    "\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lr\":list((lr.coef_.T)), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_lr'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
